/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.adsi.vista;

import com.adsi.logica.LogicaCuentasLocal;
import com.adsi.logica.LogicaRetirosLocal;
import com.adsi.modelo.Cuentas;
import com.adsi.modelo.Retiros;
import java.math.BigDecimal;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import org.primefaces.component.commandbutton.CommandButton;
import org.primefaces.component.inputtext.InputText;
import org.primefaces.model.chart.Axis;
import org.primefaces.model.chart.AxisType;
import org.primefaces.model.chart.LineChartModel;
import org.primefaces.model.chart.LineChartSeries;

/**
 *
 * @author Estudiante
 */
@ManagedBean(name = "retirosVista")
@RequestScoped
public class RetirosVista {

    @EJB
    private LogicaRetirosLocal LogicaRetiro;

    @EJB
    private LogicaCuentasLocal LogicaCuenta;

    private InputText txtCodigoRetiro;
    private InputText txtNumeroCuenta;
    private InputText txtCedulaUsuario;
    private InputText txtValorRetiro;
    private InputText txtfechaRetiro;
    private InputText txtDescripcionRetiro;
    private CommandButton btnRegistrar;
    private CommandButton btnLimpiar;
    private Cuentas selectCeuntas;
    private List<Retiros> ListaRetiros;
    private List<Cuentas> ListaCuentas;
    private LineChartModel lineModel1;

    @PostConstruct
    public void init() {
        createLineModels();
    }

    public InputText getTxtfechaRetiro() {
        return txtfechaRetiro;
    }

    public void setTxtfechaRetiro(InputText txtfechaRetiro) {
        this.txtfechaRetiro = txtfechaRetiro;
    }

    public LogicaRetirosLocal getLogicaRetiro() {
        return LogicaRetiro;
    }

    public void setLogicaRetiro(LogicaRetirosLocal LogicaRetiro) {
        this.LogicaRetiro = LogicaRetiro;
    }

    public LogicaCuentasLocal getLogicaCuenta() {
        return LogicaCuenta;
    }

    public void setLogicaCuenta(LogicaCuentasLocal LogicaCuenta) {
        this.LogicaCuenta = LogicaCuenta;
    }

    public InputText getTxtCodigoRetiro() {
        return txtCodigoRetiro;
    }

    public void setTxtCodigoRetiro(InputText txtCodigoRetiro) {
        this.txtCodigoRetiro = txtCodigoRetiro;
    }

    public InputText getTxtNumeroCuenta() {
        return txtNumeroCuenta;
    }

    public void setTxtNumeroCuenta(InputText txtNumeroCuenta) {
        this.txtNumeroCuenta = txtNumeroCuenta;
    }

    public InputText getTxtCedulaUsuario() {
        return txtCedulaUsuario;
    }

    public void setTxtCedulaUsuario(InputText txtCedulaUsuario) {
        this.txtCedulaUsuario = txtCedulaUsuario;
    }

    public InputText getTxtValorRetiro() {
        return txtValorRetiro;
    }

    public void setTxtValorRetiro(InputText txtValorRetiro) {
        this.txtValorRetiro = txtValorRetiro;
    }

    public InputText getTxtDescripcionRetiro() {
        return txtDescripcionRetiro;
    }

    public void setTxtDescripcionRetiro(InputText txtDescripcionRetiro) {
        this.txtDescripcionRetiro = txtDescripcionRetiro;
    }

    public CommandButton getBtnRegistrar() {
        return btnRegistrar;
    }

    public void setBtnRegistrar(CommandButton btnRegistrar) {
        this.btnRegistrar = btnRegistrar;
    }

    public CommandButton getBtnLimpiar() {
        return btnLimpiar;
    }

    public void setBtnLimpiar(CommandButton btnLimpiar) {
        this.btnLimpiar = btnLimpiar;
    }

    public Cuentas getSelectCeuntas() {
        return selectCeuntas;
    }

    public void setSelectCeuntas(Cuentas selectCeuntas) {
        this.selectCeuntas = selectCeuntas;
    }

    public List<Retiros> getListaRetiros() {
        return ListaRetiros;
    }

    public void setListaRetiros(List<Retiros> ListaRetiros) {
        this.ListaRetiros = ListaRetiros;
    }

    public List<Cuentas> getListaCuentas() {
        return ListaCuentas;
    }

    public void setListaCuentas(List<Cuentas> ListaCuentas) {
        this.ListaCuentas = ListaCuentas;
    }

    public void funcion_registrar() {

        Retiros r = new Retiros();
        r.setRetDescripcion(txtDescripcionRetiro.getValue().toString());
        r.setRetValor(BigDecimal.valueOf(Long.parseLong(txtValorRetiro.getValue().toString())));

    }

    public LineChartModel getLineModel1() {
        return lineModel1;
    }

    public void setLineModel1(LineChartModel lineModel1) {
        this.lineModel1 = lineModel1;
    }

    public void createLineModels() {
        lineModel1 = initLinearModel();
        lineModel1.setTitle("Retiros");
        lineModel1.setLegendPosition("e");
        Axis yAxis = lineModel1.getAxis(AxisType.Y);
        yAxis.setMin(0);
        yAxis.setMax(10);
    }

    public LineChartModel initLinearModel() {
        LineChartModel model = new LineChartModel();
        List<Retiros> Listaretiros = null;
        try {
            Listaretiros = LogicaRetiro.consultar();
        } catch (Exception ex) {
            Logger.getLogger(RetirosVista.class.getName()).log(Level.SEVERE, null, ex);
        }
        LineChartSeries serie = new LineChartSeries();
        serie.setLabel("Retiros");

        for (int i = 0; i < Listaretiros.size(); i++) {

            serie.set(Listaretiros.get(i).getRetirosPK().getRetCodigo(), Listaretiros.get(i).getRetValor());

        }

        model.addSeries(serie);

        return model;
    }

}
